1. Field of the Invention
The invention is related to the representation of the spatial and temporal information of an audio-visual scene. In object-based compression of a scene, where the individual objects that form the complete scene are compressed separately, a means of representing the spatial and temporal relationship of the objects is necessary. In a typical scene, it is possible that the properties of one object are used to affect the properties of another. This invention is essential for representing and recreating a scene by facilitating exchanges of properties between two objects.
2. Description of the Related Art
MPEG-4 [1] specifies an object-based compression of digital audio-visual information. It allows object-based interactivity of multimedia content by delineating the audio-visual objects of the scene and separately compressing each of them. The compressed audio-visual data is augmented with a scene description that is used by the decoder to reconstruct the scene by compositing the individual audio-visual objects at the decoder. In MPEG-4, the scene description is referred to as binary format for scene description (BIFS).
The scene description data is in the form of a scene tree made up of nodes and routes as shown in FIG. 1. An audio-visual object is represented by a collection of nodes. Nodes contain information or properties of the object. Routes are used to link the properties of the nodes such that the properties of one object can be used to affect the properties of another object.
According to the prior art, some form of data type casting is essential to the usefulness and success of the BIFS. This is because by definition the values at the two ends of a route must be of the same data type. Currently, the valuator can be used for this purpose, as shown in FIG. 2. Data from field 1 of node 1 is routed through the valuator node to field 1 of node 2. However, due to the static nature of the valuator, the second node will always receive a fixed value regardless of the first node. As such, the value of field 1 of node 2 cannot change in respond to field 1 of node 1. However, this gives rise to other problems which will be discussed in the next section.
In the VRML specification [2], the second prior art, scripting is usually used to provide this data type casting mechanism. However, scripting is more complex and requires that the users learn the scripting language. Furthermore, implementation of a scripting node requires an interpreter that has much higher resource requirements.
In the Systems Final Committee Draft (document ISO/IEC JTC1/SC29/WG11 N2201) [1], the valuator node is defined for allowing output values of a node to be routed to an input value of another node of different data type. For example, an output value of data type Boolean (TRUE/FALSE) can be connected to an input value of floating-point data type by using the valuator node. However, the MPEG System Committee Draft defines the output of the valuator node to be a constant, this severely limits the use of the valuator node for type casting purposes resulting in extreme difficulties in creating a more complex scene. In fact, many valuator nodes and work-around are required to implement even simple scenes.
The current prior art have the following deficiencies:
(1) The data type of the property that is being connected from one node to another node through the route must be the same.
(2) Type casting can only be performed by a specific node called the valuator node.
(3) The output of the valuator node is always a constant.
This creates several problems especially when we would like the property of one node to influence the property of another node when the properties have different data types.
First, since route has no capability of changing the data type of the properties, properties of different data types cannot be connected. The trivial solution of course is to allow routes to handle data type casting. However, this would add additional complexity to the implementation of routes, as in the majority of cases, no data type casting is necessary.
Therefore, the valuator node is necessary in order to perform the data type casting function. However, the valuator has another limitation. Its output is a constant and cannot change. Therefore, in order for the property of one node to influence the property of another node, multiple valuators are needed.
With the limitations highlighted above, it is not possible to route from the same field of nodes through two valuators, each having different constant values, as illustrated in FIG. 3. As the last route will overwrite all information of the previous routes. However, this situation is actually quite common. In this prior art, an attempt is made to change the input field of Node 1, 308, depending on the output field of Node 1, 301. The output field of Node 1 is connected to the valuator 1, 304, via the route, 302. The output of the Valuator 1 is then connected to the input field of Node 2 via route, 306. Similarly, the same output of Node 1 is also connected to valuator 2, 305, via the route, 303. The output of the valuator 2 is then connected to the input field of Node 2 via route, 307. However this does not create the desired result because the second route, 307, will always overwrite the value of the first route, 306.
The conclusion is that it is not possible to have value of input property of node 2 to dependent on output property of node 1 if they are of different data types. A means to overcome this is essential as many situation requires such type casting functionality such as a 2-state button (refer to example 1 for illustration).
Our solution to the problem is to extend and enhance the functionality of the valuator node specified in the MPEG-4 System Committee Draft by removing the constraint that the output values of the valuator node be a constant. Instead, the output values should be a function of the input values. This is illustrated in FIG. 4. The field of the Node 1, 401, is connected to the input field of the valuator node, 403, via the route, 402. The valuator node then converts the input field to the output field by a conversion routine followed by a data type casting routine. The output field is then connected to the input field of Node 2, 405, via the route, 404.
By this, we eliminate the need for multiple valuator nodes to be connected to the same destination field.
A detailed block diagram of the invention is shown in FIG. 5. To illustrate this invention, a simple linear function of the form shown below is proposed.
f(x)=factor*x+offsetxe2x80x83xe2x80x83(1)
Where
factor=user specified values, one of the exposedField factor values shown in the semantic tables for the valuator below
offset=a constant value, one of the exposedField offset values shown in the semantic tables for the valuator below.
The Factor parameter allows scaling of the input values. For example, an integer value can be scaled to a value between 0 and 1 of a floating-point value by specifying 232 as the factor.
The offset parameter introduces an offset to the input value. This can be used to perform a delay to a certain action when used with a TimeSensor node. This value is the same as that specified in the original valuator node. Note that this is an extension to the original valuator node as most of the original functionality is preserved by setting the value of factor to be zero and offset to the required output value. This will make this new version of the valuator acts like the currently specified valuator node.
According to the first aspect of the present invention, a method for linking information of different data types in a representation of the spatial and temporal description of a scene where the spatial and temporal relationship of the objects in the scene are represented by a scene tree description comprising of a plurality of nodes which describe the properties of the object and routes which connect the fields of one node to another, by means of a valuator node comprising the steps of
setting the value of the input of the valuator node to the value of output of the source node;
determining the data type of the output of the source node and the input of the destination node;
selecting the operation and typecasting necessary from a set of predefined procedure or function based on the data type of said fields;
modifying said input by said selected procedure or function to form the output of the valuator node;
casting said output of the valuator node to the required data type of the input of the destination node, and
setting the value of the input of the destination node to the value of the output of the valuator node.
According to the second aspect, a method of linking information of different data types in a representation of the spatial and temporal description of a scene as in the first aspect, where the input and output fields of the valuator comprises of one of but no limited to the following data types: integer number, floating point number or Boolean value.
According the third aspect, a method of linking information of different data types in a representation of the spatial and temporal description of a scene as in the first aspect, where the method of modifying said input value by a predefined procedure or function to form the output value comprises the steps of multiplying the input field by a constant value followed by adding a second constant value to obtain the final value for the output field.
According to the fourth aspect of the invention, a method for linking information of different data types in a representation of the spatial and temporal description of a scene where the spatial and temporal relationship of the objects in the scene are represented by a scene tree description comprising of a plurality of nodes which describe the properties of the object and routes which connect the fields of one node to another, by means of a valuator node comprising the steps of
setting the value of the input vector of the valuator node to the value of the fields of output vector of the source node;
determining the data type of the fields of the output vector of the source node and the input vector of the destination node;
selecting the operation and typecasting necessary from a set of predefined procedure or function based on the data type of said fields;
modifying said input vector by said selected procedure or function to form the output vector of the valuator node;
casting said output vector of the valuator node to the required data type of the input vector of the destination node, and
setting the value of the input vector of the destination node to the value of the output vector of the valuator node.
According to the fifth aspect, a method of linking information of different data types in a representation of the spatial and temporal description of a scene as in the first aspect, where the input and output vectors contain a plurality of elements and that the elements comprises of one of but no limited to the following data types: integer number, floating point number or Boolean value.
According to the sixth aspect, a method of linking information of different data types in a representation of the spatial and temporal description of a scene as in the fourth aspect, where the method of modifying said input vector by a predefined procedure or function to form the output vector comprises the steps of
multiplying each element of input vector by a constant value to obtained the scaled value; and
adding a second constant value to the scaled value to obtain the offset value; and
setting each element of the output vector to the corresponding offset value.
According to the seventh aspect, a method of linking information of different data types in a representation of the spatial and temporal description of a scene as in the fourth aspect, where the method of modifying said input vector by a predefined procedure or function to form the output vector comprises the steps of
multiplying each element of input vector by a constant value to obtained the scaled value;
adding a second constant value to the scaled value to obtain the offset value;
summing all the offset values derived from the input vector to form; and
setting each element of the output vector to said sum.
According to the eighth aspect, a method of linking information of different data types in a representation of the spatial and temporal description of a scene as in the fourth, sixth or seventh aspect, where the valuator node comprises an additional input field to control the choice of selecting the output as the output vector of the sixth aspect or the seventh aspect.
According to the ninth aspect, a method of modifying said input vector by a predefined procedure or function to form the output value as in the sixth aspect, where the valuator node comprises an additional input field and that the setting of each element of the output vector to the corresponding offset value is only enabled when a control signal is received by said input field or if said input field is set to a predefined value.
According to the tenth aspect, a method of modifying said input vector by a predefined procedure or function to form the output value as in the sixth aspect, where the valuator node comprises an additional input field and that the setting of each element of the output vector to said sum is only enabled when a control signal is received by said input field or if said input field is set to a predefined value.
According to the eleventh aspect, a method of linking information of different data types in a representation of the spatial and temporal description of a scene as in the first, second, fourth, sixth, seventh or eighth aspect, where the constants are user defined either at the time of content creation or during the execution of the content.